package com.xhsj.user.hr.system.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xhsj.user.hr.system.entity.TbHrApprovalDimissionApply;
import com.xhsj.user.hr.system.vo.OrganizationApplyVo;
import org.apache.ibatis.annotations.Mapper;
import com.xhsj.user.hr.system.entity.TbGlobalOrganizationApply;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.List;
/**
 * <p>
 * 组织结构申请记录 Mapper 接口
 * </p>
 *
 * @author suxiaolin
 * @since 2020-09-21
 */
@Mapper
public interface TbGlobalOrganizationApplyMapper extends BaseMapper<TbGlobalOrganizationApply> {

    /**
     * 查询正在执行任务
     * @author 苏小林
     * @date 2020/9/21 14:57
     * @param: page
     * @param: userId
     * @param: roleIds
     * @return: com.baomidou.mybatisplus.core.metadata.IPage<com.xhsj.user.hr.system.vo.OrganizationApplyVo>
     */
    IPage<OrganizationApplyVo> findOrganizationApplyRunTask(Page<TbHrApprovalDimissionApply> page, @Param("userId") Long userId, @Param("roleIds") List<Long> roleIds);

    /**
     * 查询历史任务
     * @author 苏小林
     * @date 2020/9/21 14:57
     * @param: page
     * @param: userId
     * @return: com.baomidou.mybatisplus.core.metadata.IPage<com.xhsj.user.hr.system.vo.OrganizationApplyVo>
     */
    IPage<OrganizationApplyVo> findOrganizationApplyHiTask(Page<TbHrApprovalDimissionApply> page, @Param("userId") Long userId);

    /**
     * 查询数据
     * @author 苏小林
     * @date 2020/9/21 15:32
     * @param: id
     * @return: com.xhsj.user.hr.system.entity.TbGlobalOrganizationApply
     */
    TbGlobalOrganizationApply getById(@Param("id") Long id);

    /**
     * 查询我的申请
     * @author 苏小林
     * @date 2020/9/21 15:56
     * @param: page
     * @param: userId
     * @return: com.baomidou.mybatisplus.core.metadata.IPage<com.xhsj.user.hr.system.vo.OrganizationApplyVo>
     */
    IPage<OrganizationApplyVo> findMyApply(Page<TbHrApprovalDimissionApply> page, @Param("userId") Long userId);

    /**
     * 删除数据
     * @author 苏小林
     * @date 2020/9/21 16:51
     * @param: id
     */
    void delDataAndTask(@Param("id") Long id,@Param("processTaskId") Long processTaskId);
}
